﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//Import
using ddcCajamarca.BusinessEntities.Documentos;
using System.Data.Entity.ModelConfiguration;
using System.ComponentModel.DataAnnotations.Schema;


namespace ddcCajamarca.Repository.Mapping.Documentos
{
    public class RDocumentoMap : EntityTypeConfiguration<RDocumento>
    {

        public RDocumentoMap()
        {
            this.HasKey(c => c.Id);

            this.Property(c => c.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

            this.Property(c => c.TramiteDocumentarioId)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            this.Property(c => c.NroExpediente)
                .HasMaxLength(9)
                .IsRequired();

            this.Property(c => c.Fecha)
                .IsRequired();

            this.Property(c => c.Folios)
                .HasMaxLength(9)
                .IsRequired();

            this.Property(c => c.Asunto)
                .HasMaxLength(300)
                .IsOptional();

            this.Property(c => c.Usuario)
               .HasMaxLength(100)
               .IsOptional();

            this.Property(c => c.Recurrente)
                .HasMaxLength(100)
                .IsRequired();

            this.Property(c => c.Estado)
                .HasMaxLength(40)
                .IsOptional();

            this.Property(c => c.Entregado)
                .HasMaxLength(100)
                .IsOptional();

            this.Property(c => c.Dni)
                .HasMaxLength(11)
                .IsOptional();

            this.Property(c => c.AreaEstado)
                .HasMaxLength(40)
                .IsOptional();

            this.Property(c => c.Oficio)
                .HasMaxLength(50)
                .IsOptional();

            this.ToTable("RDocumento");
            this.Property(c => c.Id).HasColumnName("Id");
            this.Property(c => c.NroExpediente).HasColumnName("NroExpediente");
            this.Property(c => c.Usuario).HasColumnName("Usuario");
            this.Property(c => c.Asunto).HasColumnName("Asunto");
            this.Property(c => c.Folios).HasColumnName("Folios");
            this.Property(c => c.Fecha).HasColumnName("Fecha");
            this.Property(c => c.Recurrente).HasColumnName("Recurrente");
            this.Property(c => c.Estado).HasColumnName("Estado");
            this.Property(c => c.Entregado).HasColumnName("Entregado");
            this.Property(c => c.Dni).HasColumnName("Dni");
            this.Property(c => c.TramiteDocumentarioId).HasColumnName("TramiteDocumentarioId");
            this.Property(c => c.AreaEstado).HasColumnName("AreaEstado");
            this.Property(c => c.Oficio).HasColumnName("Oficio");

            this.HasRequired(c => c.TramiteDocumentario)
                .WithMany(c => c.RDocumento)
                .HasForeignKey(t => t.TramiteDocumentarioId)
                .WillCascadeOnDelete(false);
        }
    }
}

